package LeetCode;

import java.util.HashSet;
import java.util.Set;

public class Num0201 {
    public ListNode removeDuplicateNodes(ListNode head) {
        if(head==null){
            return null;
        }
//        时间换空间
        ListNode newHead=new ListNode(-1);
        newHead.next=head;
        ListNode prev=newHead;
        Set<Integer> set=new HashSet<>();
        while (prev.next!=null){
            if(!set.contains(prev.next.val)){
                set.add(prev.next.val);
                prev=prev.next;
            }else {
                prev.next=prev.next.next;
            }
        }
        return newHead.next;
        //空间换时间
//        ListNode newHead=new ListNode(-1);
//        newHead.next=head;
//        ListNode prev=newHead;
//        while (prev.next!=null){
//            ListNode cur=prev.next;
//            while (cur.next!=null){
//                if(prev.next.val==cur.next.val){
//                    cur.next=cur.next.next;
//                }else {
//                    cur=cur.next;
//                }
//            }
//            prev=prev.next;
//        }
//        return newHead.next;
    }
}
